import axios from 'axios'
// import QS from 'qs'

// 环境的切换
if (process.env.NODE_ENV == 'development') {
    axios.defaults.baseURL = 'http://localhost:8000';
} else if (process.env.NODE_ENV == 'production') {
    axios.defaults.baseURL = 'https://localhost:8080';
}
axios.defaults.timeout = 10000;

// 请求拦截器
// axios.interceptors.request.use(
//     config => {
//         // 每次发送请求之前判断vuex中是否存在token
//         // 如果存在，则统一在http请求的header都加上token，这样后台根据token判断你的登录情况
//         // 即使本地存在token，也有可能token是过期的，所以在响应拦截器中要对返回状态进行判断
//         const token = store.state.token;
//         token && (config.headers.Authorization = token);
//         return config;
//     },
//     error => {
//         return Promise.error(error);
//     })

axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8';
axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';

axios.defaults.withCredentials = true
axios.interceptors.response.use(function (response) {
    // var msg = response.data.message
    // console.log(msg)
    return response

}, function (error) {
    return Promise.reject(error)
});

export function get(url, params) {
    return new Promise((resolve, reject) => {
        axios.get(url, {
            params: params,
            headers: {
                'Content-Type': 'application/json'
            }
        }).then(res => {
            resolve(res.response.data)
        }).catch(err => {
            reject(err.response.data)
        })
    })
}

/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function post(url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, JSON.stringify(params))
            .then(res => {
                resolve(res.data);
            })
            .catch(err => {
                reject(err.response.data)
            })
    });
}